Models can be deleted using the DataContext#delete method, which deletes a model by ID. Thus, when using this method the primary key is required to be set on each model. As with insert, the DataContext#delete method takes an object as a parameter, and each of the object's properties should map to a table. The value associated with each property should be one or more model objects (i.e. an object or an array).
The following example deletes a single bonuses record by ID.
'use strict';
const MySQLDriver = require('node-data-mapper-mysql').MySQLDriver;
const driver = new MySQLDriver(require('../bikeShopConOpts.json'));
driver
.initialize()
.then(runQuery)
.then(printResult)
.catch(console.error)
.finally(() => driver.end());
function runQuery(dataContext) {
// Delete a single model by ID.
const query = dataContext
.delete({
bonuses: {
bonusID: 1
}
});
console.log('Query:');
console.log(query.toString(), '\n');
return query
.execute();
}
function printResult(result) {
console.log('Result:');
console.log(result);
}
After execution, the result variable will contain the number of affected rows. Here's the output ($ node example/delete/deleteSingleModel.js):
Query:
DELETE `bonuses`
FROM `bonuses` AS `bonuses`
WHERE (`bonuses`.`bonusID` = :bonuses_bonusID_0)
Result:
{ affectedRows: 1 }